package cc.owoo.godpen.analysis.html;

import java.util.ArrayList;
import java.util.Iterator;

/**
 * 集合对象
 * Created by 摸鱼
 * 2022/05/23 上午 10:47
 */
class HtmlList<T> implements Iterable<T> {
    private final ArrayList<T> list = new ArrayList<>();

    /**
     * 添加元素
     *
     * @param element 元素对象
     */
    void add(T element) {
        list.add(element);
    }

    /**
     * 根据下标获取元素
     *
     * @param index 元素下标
     * @return 元素对象
     */
    public T get(int index) {
        if (index < 0 || index >= list.size())
            return null;
        return list.get(index);
    }


    public Element get(String id) {
        return null;
    }

    /**
     * 删除元素
     *
     * @param item 需要删除的元素
     * @return 是否删除
     */
    boolean remove(T item) {
        return list.remove(item);
    }

    /**
     * 获取数组长度
     *
     * @return 数组长度
     */
    public int size() {
        return list.size();
    }

    /**
     * 获取元素数量
     *
     * @return 元素数组长度
     */
    public int length() {
        return list.size();
    }

    @Override
    public Iterator<T> iterator() {
        return list.iterator();
    }

    @Override
    public String toString() {
        StringBuilder string = new StringBuilder();
        string.append('[');
        boolean interval = false;
        for (T item : this) {
            if (interval)
                string.append(",\n");
            else
                interval = true;
            string.append(item.toString());
        }
        string.append(']');
        return string.toString();
    }
}
